package com.example.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
//import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
//import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration //配置类
@EnableTransactionManagement
@MapperScan("com.example.mapper") //扫描mapper文件
public class MyBatisPlusConfig {

	//注册乐观锁插件
	@Bean
	public OptimisticLockerInterceptor optimisticLockerInterceptor() {
		return new OptimisticLockerInterceptor();
	}

	// 分页插件
	@Bean
	public PaginationInterceptor paginationInterceptor() {
		PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
		return paginationInterceptor;
	}

	//逻辑删除组件
//	@Bean
//	public ISqlInjector iSqlInjector(){
//		return new LogicSqlInjector();
//	}

	//sql执行效率插件
//	@Bean
//	@Profile({"dev","test"})
//	public PerformanceInterceptor performanceInterceptor(){
//		PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
//		performanceInterceptor.setMaxTime(100);//设置sql执行的最大时间,超过时间就不执行
//		performanceInterceptor.setFormat(true);//开启格式化功能
//		return performanceInterceptor;
//	}

}
